home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 21 / CU Amiga Magazine's Super CD-ROM 21 (1998)(EMAP Images)(GB)[!][issue 1998-04].iso / CUCD / Programming / InfoMixer / Info_Mixer.e < prev    next >
Encoding:
Text File  |  1998-02-08  |  20.5 KB  |  776 lines

  1.  
  2. /*************************************************************************
  3.  
  4. :Program       Info_mixer.e
  5. :Description   Tool for Prelude Soundcard
  6.  
  7. :Autor.         Friedhelm Bunk
  8. :EC-Version     EC3.3a    
  9. :OS.            > 2.0 
  10. :PRG-Version    1.0
  11.  
  12. *************************************************************************/
  13.  
  14.  
  15.  
  16. OPT OSVERSION=37
  17.  
  18. MODULE 'gadtools',
  19.        'libraries/gadtools',
  20.        'intuition/intuition',
  21.        'intuition/screens',
  22.        'intuition/gadgetclass',
  23.        'intuition/iobsolete',
  24.        'utility/tagitem',
  25.        'devices/inputevent',
  26.        'graphics/text','dos/dos',
  27.        'prelude','libraries/prelude'
  28.  
  29. OBJECT makes
  30. wert
  31. posx
  32. posy
  33. ids
  34. mdevi
  35. setfreq
  36. setinput
  37. test
  38. ENDOBJECT
  39.  
  40.  
  41. ENUM ERROR_NONE,
  42.      ERROR_CONTEXT,
  43.      ERROR_GADGET,
  44.      ERROR_WB,
  45.      ERROR_VISUAL,
  46.      ERROR_GT,
  47.      ERROR_WINDOW,
  48.      ERROR_MENUS,
  49.      NOBUFFER,
  50.      ERROR_PRE
  51.  
  52.  
  53. DEF infos:PTR TO gadget,menu=NIL,fh,mpx,lok,flag,attn,
  54.     project0wnd:PTR TO window,ioi[255]:STRING,
  55.     project0glist,start:PTR TO prlctrl,rueck,beginn,
  56.     scr:PTR TO screen,bn[26]:ARRAY OF makes,status,
  57.     visual=NIL,x,offx,offy,type,faktor,multi,umre,
  58.     tattr:PTR TO textattr,zy,mystart:PTR TO preludebase
  59.  
  60.  
  61.  
  62. PROC wait4message(win:PTR TO window)
  63.   DEF mes:PTR TO intuimessage,g:PTR TO gadget,
  64.       menur,menup,menug
  65. REPEAT
  66.     type:=0
  67.     faktor:=36.0  
  68.  IF mes:=Gt_GetIMsg(win.userport)
  69.       type:=mes.class
  70.       infos:=mes.code
  71.       g:=mes.iaddress
  72.       infos:=g.gadgetid
  73. IF (type=IDCMP_MENUPICK)
  74.          x:=mes.code
  75.          menur:=x AND 31
  76.          menup:=(Shr(x,5)) AND 63
  77.          menug:=(menur*10)+menup+1
  78.      IF menug=6
  79.         type:=IDCMP_CLOSEWINDOW
  80.      ELSEIF menug=2
  81.        mpx:=2
  82.        speicher()
  83.      ELSEIF menug=1
  84.        attn:=TRUE
  85.        check()
  86.       IF flag=0
  87.         mpx:=1
  88.        lok:=TRUE
  89.        auswahl()
  90.        lade()
  91.       rechne2()
  92.       ENDIF
  93.      ELSEIF menug=4
  94.         EasyRequestArgs(0,[20,0,'Infos','\s','OK'],0,[bn[23].wert])
  95.      ELSEIF menug=11
  96.        attn:=TRUE
  97.        check()
  98.        IF flag=0
  99.         start:=PreludeInit([bn[1].mdevi,$08,bn[2].mdevi,$08,bn[3].mdevi,$9F,bn[4].mdevi,$9F,
  100.         bn[5].mdevi,$09,bn[6].mdevi,$09,bn[7].mdevi,$09,bn[8].mdevi,$09,bn[10].mdevi,$80,                        
  101.         bn[9].mdevi,$0,bn[11].mdevi,$0,bn[12].mdevi,$0,PRL_INPUT_RIGHT,$0,PRL_INPUT_LEFT,$0,
  102.         PRL_FREQUENCY,bn[1].setfreq,NIL])
  103.         lese()
  104.         setze()
  105.         EasyRequestArgs(0,[20,0,'Card Reset','\s','OK'],0,[bn[24].wert])
  106.        ENDIF
  107.       ELSEIF menug=12
  108.        status:=mystart.mopencnt
  109.        check()
  110.        EasyRequestArgs(0,[20,0,'Info','\s\s','OK'],0,[bn[11].setinput,bn[x].setinput])
  111.       ELSEIF menug=13
  112.        lese()
  113.        setze()
  114.      ELSEIF menug=14
  115.       attn:=TRUE
  116.       check()
  117.       IF flag=0
  118.        lok:=TRUE
  119.        mpx:=2
  120.        auswahl()
  121.        lade()
  122.        rechne2()
  123.       ENDIF
  124.      ENDIF
  125. ELSEIF  (type=IDCMP_GADGETUP) OR (type=IDCMP_GADGETDOWN)
  126.  IF infos=13   
  127.      Gt_SetGadgetAttrsA(bn[2].test,project0wnd,0,[GTSL_LEVEL,bn[1].ids,NIL])
  128.   anzeige(2,bn[1].ids)
  129.   rueck:=SetPrlCtrl([PRL_VOL_LINE_LEFT,bn[1].wert,NIL])
  130.  ELSEIF infos=14   
  131.      Gt_SetGadgetAttrsA(bn[4].test,project0wnd,0,[GTSL_LEVEL,bn[3].ids,NIL])
  132.   anzeige(4,bn[3].ids)
  133.   rueck:=SetPrlCtrl([PRL_VOL_A1_LEFT,bn[3].wert,NIL])
  134.  ELSEIF infos=15   
  135.      Gt_SetGadgetAttrsA(bn[6].test,project0wnd,0,[GTSL_LEVEL,bn[5].ids,NIL])
  136.   anzeige(6,bn[5].ids)
  137.   rueck:=SetPrlCtrl([PRL_VOL_A2_LEFT,bn[5].wert,NIL])
  138.  ELSEIF infos=16   
  139.      Gt_SetGadgetAttrsA(bn[8].test,project0wnd,0,[GTSL_LEVEL,bn[7].ids,NIL])
  140.   anzeige(8,bn[7].ids)
  141.   rueck:=SetPrlCtrl([PRL_VOL_DAC_LEFT,bn[7].wert,NIL])
  142.  ELSEIF infos=17   
  143.      Gt_SetGadgetAttrsA(bn[12].test,project0wnd,0,[GTSL_LEVEL,bn[11].ids,NIL])
  144.   anzeige(12,bn[11].ids)
  145.   rueck:=SetPrlCtrl([PRL_ING_LEFT,bn[11].wert,NIL])
  146.  ENDIF
  147.  IF infos=18
  148.   rueck:=SetPrlCtrl([PRL_FREQUENCY,bn[mes.code].setfreq,NIL])
  149.    bn[13].wert:=mes.code
  150.  ENDIF
  151.  IF infos=22
  152.   rueck:=SetPrlCtrl([PRL_INPUT_RIGHT,bn[mes.code].setinput,NIL])
  153.   rueck:=SetPrlCtrl([PRL_INPUT_LEFT,bn[mes.code].setinput,NIL])
  154.    bn[17].wert:=mes.code
  155.  ENDIF
  156.  IF infos=19
  157.   IF bn[14].wert=$20
  158.   rueck:=SetPrlCtrl([PRL_MING_LEFT,0,NIL])
  159.   bn[14].wert:=0
  160.   ELSE
  161.   rueck:=SetPrlCtrl([PRL_MING_LEFT,$20,NIL])
  162.   bn[14].wert:=$20
  163.   ENDIF
  164.  ENDIF
  165. IF infos=20
  166.   IF bn[15].wert=$20
  167.     rueck:=SetPrlCtrl([PRL_MING_RIGHT,0,NIL])
  168.     bn[15].wert:=0
  169.    ELSE
  170.     rueck:=SetPrlCtrl([PRL_MING_RIGHT,$20,NIL])
  171.     bn[15].wert:=$20
  172.    ENDIF
  173.   ENDIF
  174. IF infos=21
  175.     IF bn[16].wert=5
  176.      rueck:=SetPrlCtrl([PRL_HPF,0,NIL])
  177.      bn[16].wert:=0
  178.    ELSE
  179.     rueck:=SetPrlCtrl([PRL_HPF,5,NIL])
  180.      bn[16].wert:=5
  181.   ENDIF
  182.  ENDIF
  183. ELSEIF (type=IDCMP_MOUSEMOVE) 
  184.  IF infos<10
  185.   umre:=32
  186.  ELSE
  187.   umre:=16
  188.  ENDIF
  189.        bn[infos].ids:=mes.code
  190.        bn[infos].wert:=Abs(umre-mes.code)
  191.  IF infos>10
  192.   bn[infos].wert:=mes.code
  193.  ENDIF
  194.  IF bn[infos].wert=umre
  195.   IF infos>10
  196.    bn[infos].wert:=0
  197.   ELSEIF infos>8
  198.     bn[infos].wert:=$80
  199.   ELSEIF infos>6
  200.     bn[infos].wert:=$BF
  201.   ELSE
  202.    bn[infos].wert:=$9F
  203.   ENDIF 
  204.  ENDIF
  205.        anzeige(infos,mes.code)
  206.        rueck:=SetPrlCtrl([bn[infos].mdevi,bn[infos].wert,NIL])
  207.     ELSEIF type=IDCMP_REFRESHWINDOW
  208.         Gt_BeginRefresh(win)
  209.         Gt_EndRefresh(win,TRUE)
  210.      ENDIF
  211.       Gt_ReplyIMsg(mes)
  212.     ELSE
  213.       WaitPort(win.userport)
  214.     ENDIF
  215.   UNTIL type
  216. ENDPROC 
  217.  
  218.  
  219. PROC check()
  220. status:=mystart.mopencnt
  221. IF status>1
  222. bn[11].setinput:='\nAt least one other Program has open Prelude.library\n\n'
  223. ELSE
  224. bn[11].setinput:='\n'
  225. ENDIF
  226. flag:=0
  227. x:=start.runningmode
  228. x:=x+7
  229. IF (x>7) AND (x<10) AND (attn=TRUE)
  230.  flag:=EasyRequestArgs(0,[20,0,'Sorry Attention :','\s\s','CANCEL|DO IT'],0,[bn[11].setinput,bn[x].setinput])
  231. ELSEIF ((start.prl_status AND $FFFF)=$9000) AND (attn=TRUE)
  232.  flag:=EasyRequestArgs(0,[20,0,'Sorry Attention :','\s\s','CANCEL|DO IT'],0,[bn[11].setinput,bn[10].setinput])
  233. ELSEIF beginn=TRUE
  234.  flag:=EasyRequestArgs(0,[20,0,'Start with Reset ?','\s\s','CANCEL|DO IT'],0,[bn[11].setinput,bn[x].setinput])
  235. ENDIF
  236. attn:=FALSE
  237. ENDPROC
  238.  
  239.  
  240.  
  241. PROC rechne(xy,ab,plika,xx,yy,minfos)
  242. DEF x,s[7]:STRING
  243. x:=xy!*plika-ab
  244. StringF(zy,'\s(5)db',RealF(s,x,1))
  245. IF xy>32 THEN xy:=0
  246. IF xy = 0
  247.  StringF(zy,' MUTE  ')
  248.  IF (minfos=11) OR (minfos=12)
  249.    StringF(zy,'NO GAIN')
  250.  ENDIF
  251. ENDIF
  252. TextF(offx+xx,offy+yy,'\s',zy)
  253. ENDPROC
  254.  
  255.  
  256. PROC anzeige(auswert,code)
  257.      faktor:=36.0
  258.      multi:=1.5
  259.      IF (auswert>6) AND (auswert<10)
  260.      faktor:=48.0
  261.      ELSEIF auswert=10
  262.       faktor:=48.0
  263.       multi:=3.0
  264.     ELSEIF (auswert>10) AND (auswert<13)
  265.       faktor:=0.0
  266.       multi:=1.5
  267.      ENDIF
  268.  rechne(code,faktor,multi,bn[auswert].posx,bn[auswert].posy,auswert)
  269. ENDPROC
  270.  
  271.  
  272. PROC lese()
  273. FOR x:=14 TO 16
  274. bn[x].wert:=0
  275. bn[x].ids:=0
  276. ENDFOR
  277. umre:=32
  278. bn[2].ids:=Abs(umre-start.volumeleftline)
  279. bn[2].wert:=start.volumeleftline
  280. bn[1].ids:=Abs(umre-start.volumerightline)
  281. bn[1].wert:=start.volumerightline
  282. bn[4].ids:=Abs(umre-start.volumeleftaux1)
  283. bn[4].wert:=start.volumeleftaux1
  284. bn[3].ids:=Abs(umre-start.volumerightaux1)
  285. bn[3].wert:=start.volumerightaux1
  286. bn[6].ids:=Abs(umre-start.volumeleftaux2)
  287. bn[6].wert:=start.volumeleftaux2
  288. bn[5].wert:=start.volumerightaux2
  289. bn[5].ids:=Abs(umre-start.volumerightaux2)
  290. bn[9].ids:=Abs(umre-start.volumeloopback)
  291. bn[9].wert:=start.volumeloopback
  292. bn[10].wert:=start.volumemonoin
  293. bn[8].ids:=Abs(umre-start.volumeleftdac)
  294. bn[8].wert:=start.volumeleftdac
  295. bn[7].ids:=Abs(umre-start.volumerightdac)
  296. bn[7].wert:=start.volumerightdac
  297. umre:=16
  298. bn[10].ids:=Abs(umre-start.volumemonoin)
  299. bn[12].ids:=start.inputgainleft
  300. bn[12].wert:=start.inputgainleft
  301. bn[11].ids:=start.inputgainright
  302. bn[11].wert:=start.inputgainright
  303. FOR x:=1 TO 12
  304.  IF bn[x].ids>31 THEN bn[x].ids:=0
  305.  IF bn[x].wert>31 
  306.   IF x>10
  307.    bn[x].wert:=0
  308.   ELSEIF x>8
  309.     bn[x].wert:=$80
  310.   ELSEIF x>6
  311.     bn[x].wert:=$BF
  312.   ELSE
  313.   bn[x].wert:=$9F
  314.   ENDIF
  315.  ENDIF
  316. ENDFOR
  317. FOR x:=0 TO 13
  318.  IF bn[x].setfreq=(start.frequency AND $0000FFFF)
  319.   bn[13].wert:=x
  320.   bn[13].ids:=bn[13].wert
  321.  ENDIF
  322. ENDFOR
  323. FOR x:=0 TO 3
  324.  IF bn[x].setinput=start.rightinput
  325.   bn[17].wert:=x
  326.   bn[17].ids:=bn[17].wert
  327.  ENDIF
  328. ENDFOR
  329. IF bn[19].setinput=start.lmicgainenabled
  330.  bn[14].wert:=$20
  331.  bn[14].ids:=1
  332. ENDIF
  333. IF bn[20].setinput=start.rmicgainenabled
  334.  bn[15].wert:=$20
  335.  bn[15].ids:=1
  336. ENDIF
  337. IF start.filterenabled >0
  338.  bn[16].wert:=5
  339.  bn[16].ids:=1
  340. ENDIF
  341. ENDPROC
  342.  
  343.  
  344. PROC rechne2()
  345. IF lok=TRUE
  346. FOR x:=14 TO 16
  347. bn[x].ids:=0
  348. ENDFOR
  349. umre:=32
  350. bn[2].ids:=Abs(umre-bn[2].wert)
  351. bn[1].ids:=Abs(umre-bn[1].wert)
  352. bn[4].ids:=Abs(umre-bn[4].wert)
  353. bn[3].ids:=Abs(umre-bn[3].wert)
  354. bn[6].ids:=Abs(umre-bn[6].wert)
  355. bn[5].ids:=Abs(umre-bn[5].wert)
  356. bn[9].ids:=Abs(umre-bn[9].wert)
  357. bn[8].ids:=Abs(umre-bn[8].wert)
  358. bn[7].ids:=Abs(umre-bn[7].wert)
  359. umre:=16
  360. bn[10].ids:=Abs(umre-bn[10].wert)
  361. bn[12].ids:=bn[12].wert
  362. bn[11].ids:=bn[11].wert
  363. bn[13].ids:=bn[13].wert
  364. bn[17].ids:=bn[17].wert
  365. IF bn[19].setinput=bn[14].wert
  366.  bn[14].ids:=1
  367. ENDIF
  368. IF bn[20].setinput=bn[15].wert
  369.  bn[15].ids:=1
  370. ENDIF
  371. IF bn[16].wert >0
  372.  bn[16].ids:=1
  373. ENDIF
  374. setze()
  375. presetze()
  376. ENDIF
  377. lok:=FALSE
  378. ENDPROC
  379.  
  380.  
  381. PROC setze()
  382. FOR x:=1 TO 12
  383.  IF bn[x].ids>31 THEN bn[x].ids:=0
  384.  Gt_SetGadgetAttrsA(bn[x].test,project0wnd,0,[GTSL_LEVEL,bn[x].ids,NIL])
  385.  anzeige(x,bn[x].ids)
  386. ENDFOR
  387.  Gt_SetGadgetAttrsA(bn[17].test,project0wnd,0,[GTCY_ACTIVE,bn[17].ids,NIL])
  388.  Gt_SetGadgetAttrsA(bn[13].test,project0wnd,0,[GTCY_ACTIVE,bn[13].ids,NIL])
  389.  Gt_SetGadgetAttrsA(bn[14].test,project0wnd,0,[GTCB_CHECKED,bn[14].ids,NIL])
  390.  Gt_SetGadgetAttrsA(bn[15].test,project0wnd,0,[GTCB_CHECKED,bn[15].ids,NIL])
  391.  Gt_SetGadgetAttrsA(bn[16].test,project0wnd,0,[GTCB_CHECKED,bn[16].ids,NIL])
  392. ENDPROC
  393.  
  394.  
  395. PROC presetze()
  396. FOR x:=1 TO 12
  397.  rueck:=SetPrlCtrl([bn[x].mdevi,bn[x].wert,NIL])
  398. ENDFOR
  399. x:=bn[17].wert
  400.  rueck:=SetPrlCtrl([PRL_INPUT_RIGHT,bn[x].setinput,NIL])
  401.  rueck:=SetPrlCtrl([PRL_INPUT_LEFT,bn[x].setinput,NIL])
  402. x:=bn[13].wert
  403.  rueck:=SetPrlCtrl([PRL_FREQUENCY,bn[x].setfreq,NIL])
  404.  rueck:=SetPrlCtrl([PRL_MING_LEFT,bn[14].wert,NIL])
  405.  rueck:=SetPrlCtrl([PRL_MING_RIGHT,bn[15].wert,NIL])
  406.  rueck:=SetPrlCtrl([PRL_HPF,bn[16].wert,NIL])
  407. ENDPROC
  408.  
  409.  
  410. PROC lade()
  411. IF FileLength(bn[22].wert)>0
  412. fh:=Open(bn[22].wert,MODE_OLDFILE)
  413. FOR x:=1 TO 17
  414. ReadStr(fh,ioi)
  415. bn[x].wert:=Val(ioi,NIL)
  416. ENDFOR
  417. lok:=TRUE
  418. Close(fh)
  419. ELSEIF mpx=1
  420. mpx:=2
  421. auswahl()
  422. lade()
  423. ENDIF
  424. ENDPROC
  425.  
  426.  
  427. PROC speicher()
  428. auswahl()
  429. fh:=Open(bn[22].wert,1006)
  430.  FOR x:=1 TO 17
  431.   StringF(ioi,'\d\n',bn[x].wert)
  432.   Fputs(fh,ioi)
  433.  ENDFOR
  434. Close(fh)
  435. ENDPROC
  436.  
  437.  
  438. PROC auswahl() 
  439.  IF mpx=1
  440.    StrCopy(bn[22].wert,'ENV:Prelude/Balusmixer.pref',ALL)
  441.   ELSE 
  442.    StrCopy(bn[22].wert,'ENVARC:Prelude/balusmixer.pref',ALL)
  443.  ENDIF
  444. ENDPROC
  445.  
  446.  
  447. PROC main() HANDLE
  448.   DEF err=ERROR_NONE
  449. IF (err:=setupscreen())<>ERROR_NONE THEN Raise(err)
  450. VOID '$VER:Balus_Mixer © F.Bunk  V1.0  (09.12.1997)' 
  451. bn[22].wert:=String(250)
  452. bn[23].wert:=String(250)
  453. bn[24].wert:=String(250)
  454. bn[7].setinput:=String(250)
  455. bn[8].setinput:=String(250)
  456. bn[9].setinput:=String(250)
  457. bn[10].setinput:=String(250)
  458. bn[11].setinput:=String(250)
  459. bn[23].wert:='\nBalus_Mixer © F.Bunk  \nV1.0  (09.12.1997)\n' 
  460. bn[24].wert:='\n Card Reset done. \n'
  461. bn[8].setinput:='PLAY Mode is running !\n'
  462. bn[9].setinput:='REC Mode is running !\n'
  463. bn[7].setinput:='Nothing is running .\n'
  464. bn[10].setinput:='It is possible a AHI-Program uses Prelude\n'
  465. lok:=FALSE
  466. anlege()
  467. preludeinit()
  468. lese()
  469. reporterr(openproject0window())
  470. SetTopaz(8)   
  471.   Colour(3,0)
  472. zy:=String(7)
  473. multi:=1.5
  474. faktor:=36.0
  475. FOR x:=1 TO 6
  476. rechne(bn[x].ids,faktor,multi,bn[x].posx,bn[x].posy,x)
  477. ENDFOR
  478. faktor:=48.0
  479. FOR x:=7 TO 9
  480. rechne(bn[x].ids,faktor,multi,bn[x].posx,bn[x].posy,x)
  481. ENDFOR
  482. x:=10
  483. faktor:=48.0
  484. multi:=3.0
  485. rechne(bn[x].ids,faktor,multi,bn[x].posx,bn[x].posy,x)
  486. x:=11
  487. faktor:=0.0
  488. multi:=1.5
  489. rechne(bn[x].ids,faktor,multi,bn[x].posx,bn[x].posy,x)
  490. x:=12
  491. rechne(bn[x].ids,faktor,multi,bn[x].posx,bn[x].posy,x)
  492.  REPEAT
  493.    wait4message(project0wnd)  
  494.  UNTIL type=IDCMP_CLOSEWINDOW
  495.    closeproject0window()
  496.   IF CtrlC() THEN Raise(ERROR_NONE)
  497.   Raise(ERROR_NONE)
  498. EXCEPT
  499.   closedownscreen()
  500.   reporterr(err)
  501. ENDPROC
  502.  
  503.  
  504. PROC anlege()
  505. bn[1].posx:=155
  506. bn[1].posy:=22
  507. bn[2].posx:=155
  508. bn[2].posy:=34
  509. bn[3].posx:=372
  510. bn[3].posy:=22
  511. bn[4].posx:=372
  512. bn[4].posy:=34
  513. bn[5].posx:=155
  514. bn[5].posy:=76
  515. bn[6].posx:=155
  516. bn[6].posy:=87
  517. bn[7].posx:=372
  518. bn[7].posy:=76
  519. bn[8].posx:=372
  520. bn[8].posy:=87
  521. bn[9].posx:=155
  522. bn[9].posy:=134
  523. bn[10].posx:=155
  524. bn[10].posy:=152
  525. bn[11].posx:=372
  526. bn[11].posy:=130
  527. bn[12].posx:=372
  528. bn[12].posy:=141
  529. bn[1].mdevi:=PRL_VOL_LINE_RIGHT
  530. bn[2].mdevi:=PRL_VOL_LINE_LEFT
  531. bn[3].mdevi:=PRL_VOL_A1_RIGHT
  532. bn[4].mdevi:=PRL_VOL_A1_LEFT
  533. bn[5].mdevi:=PRL_VOL_A2_RIGHT
  534. bn[6].mdevi:=PRL_VOL_A2_LEFT
  535. bn[7].mdevi:=PRL_VOL_DAC_RIGHT
  536. bn[8].mdevi:=PRL_VOL_DAC_LEFT
  537. bn[9].mdevi:=PRL_VOL_LOOPB
  538. bn[10].mdevi:=PRL_VOL_MONO
  539. bn[11].mdevi:=PRL_ING_RIGHT
  540. bn[12].mdevi:=PRL_ING_LEFT
  541. bn[0].setfreq:=48000
  542. bn[1].setfreq:=44100
  543. bn[2].setfreq:=37800
  544. bn[3].setfreq:=33075
  545. bn[4].setfreq:=32000
  546. bn[5].setfreq:=27420
  547. bn[6].setfreq:=22050
  548. bn[7].setfreq:=18900
  549. bn[8].setfreq:=16000
  550. bn[9].setfreq:=11025
  551. bn[10].setfreq:=9600
  552. bn[11].setfreq:=8000
  553. bn[12].setfreq:=6620
  554. bn[13].setfreq:=5510
  555. bn[0].setinput:=$0
  556. bn[1].setinput:=$40
  557. bn[2].setinput:=$80
  558. bn[3].setinput:=$C0
  559. bn[19].setinput:=$20
  560. bn[20].setinput:=$20
  561. ENDPROC
  562.  
  563.  
  564. PROC reporterr(er)
  565.   DEF erlist:PTR TO LONG
  566.   IF er
  567.     erlist:=['get context',
  568.              'create gadget',
  569.              'lock wb',
  570.              'get visual infos',
  571.              'open "gadtools.library" v37+',
  572.              'open window',
  573.              'create menus',
  574.              'open Prelude_library, No Prelude ?']
  575.     EasyRequestArgs(0,[20,0,0,'Could not \s!','OK'],0,[erlist[er-1]])
  576.   ENDIF
  577. ENDPROC er
  578.  
  579.  
  580. PROC setupscreen()
  581.   IF (gadtoolsbase:=OpenLibrary('gadtools.library',37))=NIL THEN RETURN ERROR_GT
  582.   IF (preludebase:=OpenLibrary('prelude.library',2))=NIL THEN RETURN ERROR_PRE
  583.   IF (scr:=LockPubScreen('Workbench'))=NIL THEN RETURN ERROR_WB
  584.   IF (visual:=GetVisualInfoA(scr,NIL))=NIL THEN RETURN ERROR_VISUAL
  585.   offy:=scr.wbortop+Int(scr.rastport+58)-10
  586.   tattr:=['topaz.font',8,0,0]:textattr
  587. ENDPROC
  588.  
  589.  
  590. PROC closedownscreen()
  591.   IF visual THEN FreeVisualInfo(visual)
  592.   IF scr THEN UnlockPubScreen(NIL,scr)
  593.   IF gadtoolsbase THEN CloseLibrary(gadtoolsbase)
  594.   IF preludebase 
  595.   PreludeQuit()
  596.   CloseLibrary(preludebase)
  597.   mpx:=1
  598.   speicher()
  599.   ENDIF
  600. ENDPROC
  601.  
  602.  
  603. PROC openproject0window()
  604.    DEF g:PTR TO gadget
  605.   IF (g:=CreateContext({project0glist}))=NIL THEN RETURN ERROR_CONTEXT
  606. IF (menu:=CreateMenusA([1,0,'Project',0,0,0,0,
  607.     2,0,'Load','l',$0,0,0,
  608.     2,0,'Save ENVARC:','s',$0,0,0,
  609.     2,0,NM_BARLABEL,NIL,$0,0,0,
  610.     2,0,'About','a',$0,0,0,
  611.     2,0,NM_BARLABEL,NIL,$0,0,0,
  612.     2,0,'Quit ','q',$0,0,0,
  613.     1,0,'PRELUDE',0,$0,0,0,
  614.     2,0,'RESET_CARD ','r',$0,0,0,
  615.     2,0,'CARD_INFO','i',$0,0,0,
  616.     2,0,'UPDATE_Data','u',$0,0,0,
  617.     2,0,'SET_DEFAULT','d',$0,0,0,
  618.     0,0,0,0,0,0,0]:newmenu,NIL))=NIL THEN RETURN ERROR_MENUS
  619.   IF LayoutMenusA(menu,visual,NIL)=FALSE THEN RETURN ERROR_MENUS
  620.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  621.   [offx+28,offy+15,124,10,'R',tattr,1,$0,visual,0]:newgadget,
  622.   [GA_RELVERIFY,1,
  623.    GTSL_MAX,32,GTSL_LEVEL,bn[1].ids,
  624.    TAG_END]))=NIL THEN RETURN ERROR_GADGET
  625. bn[1].test:=g
  626.    IF (g:=CreateGadgetA(SLIDER_KIND,g,
  627.     [offx+28,offy+26,124,10,'L',tattr,2,$0,visual,0]:newgadget,
  628.     [GA_RELVERIFY,1,
  629.      GTSL_MAX,32,GTSL_LEVEL,bn[2].ids,    
  630.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  631. bn[2].test:=g
  632.    IF (g:=CreateGadgetA(SLIDER_KIND,g,
  633.     [offx+245,offy+15,124,10,'R',tattr,3,$0,visual,0]:newgadget,
  634.     [GA_RELVERIFY,1,
  635.      GTSL_MAX,32,GTSL_LEVEL,bn[3].ids,
  636.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  637. bn[3].test:=g
  638.    IF (g:=CreateGadgetA(SLIDER_KIND,g,
  639.     [offx+245,offy+26,124,10,'L',tattr,4,$0,visual,0]:newgadget,
  640.     [GA_RELVERIFY,1,
  641.      GTSL_MAX,32,GTSL_LEVEL,bn[4].ids,
  642.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  643. bn[4].test:=g
  644.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  645.     [offx+28,offy+69,124,10,'R',tattr,5,$0,visual,0]:newgadget,
  646.     [GA_RELVERIFY,1,
  647.      GTSL_MAX,32,GTSL_LEVEL,bn[5].ids,
  648.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  649. bn[5].test:=g
  650.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  651.     [offx+28,offy+80,124,10,'L',tattr,6,$0,visual,0]:newgadget,
  652.     [GA_RELVERIFY,1,
  653.      GTSL_MAX,32,GTSL_LEVEL,bn[6].ids,
  654.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  655. bn[6].test:=g
  656.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  657.     [offx+245,offy+69,124,10,'R',tattr,7,$0,visual,0]:newgadget,
  658.     [GA_RELVERIFY,1,
  659.      GTSL_MAX,32,GTSL_LEVEL,bn[7].ids,
  660.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  661. bn[7].test:=g
  662.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  663.     [offx+245,offy+80,124,10,'L',tattr,8,$0,visual,0]:newgadget,
  664.     [GA_RELVERIFY,1,
  665.      GTSL_MAX,32,GTSL_LEVEL,bn[8].ids,
  666.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  667. bn[8].test:=g
  668.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  669.     [offx+46,offy+127,106,10,'L_B',tattr,9,$0,visual,0]:newgadget,
  670.     [GA_RELVERIFY,1,
  671.      GTSL_MAX,32,GTSL_LEVEL,bn[9].ids,
  672.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  673. bn[9].test:=g
  674.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  675.     [offx+46,offy+144,106,10,'MONO',tattr,10,$0,visual,0]:newgadget,
  676.     [GA_RELVERIFY,1,
  677.      GTSL_MAX,16,GTSL_LEVEL,bn[10].ids,
  678.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  679. bn[10].test:=g
  680.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  681.     [offx+245,offy+122,124,10,'R',tattr,11,$0,visual,0]:newgadget,
  682.     [GA_RELVERIFY,1,
  683.      GTSL_MAX,15,GTSL_LEVEL,bn[11].ids,
  684.      TAG_END]))=NIL THEN RETURN ERROR_GADGET
  685. bn[11].test:=g
  686.   IF (g:=CreateGadgetA(SLIDER_KIND,g,
  687.     [offx+245,offy+133,124,10,'L',tattr,12,$0,visual,0]:newgadget,
  688.     [GA_RELVERIFY,1,
  689.     GTSL_MAX,15,GTSL_LEVEL,bn[12].ids,
  690.     TAG_END]))=NIL THEN RETURN ERROR_GADGET
  691. bn[12].test:=g
  692.   IF (g:=CreateGadgetA(BUTTON_KIND,g,
  693.     [offx+56,offy+40,63,16,'LINE',tattr,13,PLACETEXT_IN,visual,0]:newgadget,
  694.     [TAG_END]))=NIL THEN RETURN ERROR_GADGET
  695.   IF (g:=CreateGadgetA(BUTTON_KIND,g,
  696.     [offx+277,offy+40,63,16,'AUX 1',tattr,14,PLACETEXT_IN,visual,0]:newgadget,
  697.     [TAG_END]))=NIL THEN RETURN ERROR_GADGET
  698.   IF (g:=CreateGadgetA(BUTTON_KIND,g,
  699.     [offx+56,offy+94,63,16,'AUX 2',tattr,15,PLACETEXT_IN,visual,0]:newgadget,
  700.     [TAG_END]))=NIL THEN RETURN ERROR_GADGET
  701.   IF (g:=CreateGadgetA(BUTTON_KIND,g,
  702.     [offx+278,offy+94,63,16,'DAC',tattr,16,PLACETEXT_IN,visual,0]:newgadget,
  703.     [TAG_END]))=NIL THEN RETURN ERROR_GADGET
  704.   IF (g:=CreateGadgetA(BUTTON_KIND,g,
  705.     [offx+277,offy+147,63,16,'GAIN',tattr,17,PLACETEXT_IN,visual,0]:newgadget,
  706.     [TAG_END]))=NIL THEN RETURN ERROR_GADGET
  707.  IF (g:=CreateGadgetA(CYCLE_KIND,g,
  708.     [offx+450,offy+34,96,14,'Frequenz Hz',tattr,18,4,visual,0]:newgadget,
  709.     [GTCY_LABELS,['48000','44100','37800','33075','32000','27420','22050',
  710.      '18900','16000','11025',' 9600',' 8000',' 6620',' 5510',0],GTCY_ACTIVE,bn[13].wert,
  711.      NIL]))=NIL THEN RETURN ERROR_GADGET
  712. bn[13].test:=g
  713. IF (g:=CreateGadgetA(CHECKBOX_KIND,g,
  714.     [offx+454,offy+100,26,14,'L MIC',tattr,19,4,visual,0]:newgadget,[GTCB_CHECKED,bn[14].wert,
  715.     NIL]))=NIL THEN RETURN ERROR_GADGET
  716. bn[14].test:=g
  717. IF (g:=CreateGadgetA(CHECKBOX_KIND,g,
  718.     [offx+518,offy+100,26,14,'R MIC',tattr,20,4,visual,0]:newgadget,[GTCB_CHECKED,bn[15].wert,
  719.     NIL]))=NIL THEN RETURN ERROR_GADGET
  720. bn[15].test:=g
  721. IF (g:=CreateGadgetA(CHECKBOX_KIND,g,
  722.     [offx+528,offy+68,26,14,'ADC Filter',tattr,21,1,visual,0]:newgadget,[GTCB_CHECKED,bn[16].wert,
  723.     NIL]))=NIL THEN RETURN ERROR_GADGET
  724. bn[16].test:=g
  725.  IF (g:=CreateGadgetA(CYCLE_KIND,g,
  726.     [offx+450,offy+140,93,14,'Sample from:',tattr,22,4,visual,0]:newgadget,
  727.     [GTCY_LABELS,[' Line ',' Aux 1 ','  MIC  ',' LoopB ',0],GTCY_ACTIVE,bn[17].wert,
  728.      NIL]))=NIL THEN RETURN ERROR_GADGET
  729. bn[17].test:=g
  730. IF (project0wnd:=OpenW(0,15,560,offy+167,$37f,$100E,
  731.    'INFO_MIXER',NIL,1,project0glist))=NIL THEN RETURN ERROR_WINDOW
  732. IF SetMenuStrip(project0wnd,menu)=FALSE THEN RETURN ERROR_MENUS 
  733.  DrawBevelBoxA(project0wnd.rport,218+offx,11+offy,5,50,
  734.     [GT_VISUALINFO,visual,TAG_END]) 
  735.  DrawBevelBoxA(project0wnd.rport,5+offx,61+offy,550,4,
  736.     [GT_VISUALINFO,visual,TAG_END])
  737.  DrawBevelBoxA(project0wnd.rport,432+offx,11+offy,5,50,
  738.     [GT_VISUALINFO,visual,TAG_END])
  739.  DrawBevelBoxA(project0wnd.rport,218+offx,65+offy,5,50,
  740.     [GT_VISUALINFO,visual,TAG_END])
  741.  DrawBevelBoxA(project0wnd.rport,5+offx,115+offy,550,4,
  742.     [GT_VISUALINFO,visual,TAG_END])
  743.  DrawBevelBoxA(project0wnd.rport,432+offx,65+offy,5,50,
  744.     [GT_VISUALINFO,visual,TAG_END])
  745.  DrawBevelBoxA(project0wnd.rport,218+offx,119+offy,5,45,
  746.     [GT_VISUALINFO,visual,TAG_END])
  747.  DrawBevelBoxA(project0wnd.rport,432+offx,119+offy,5,45,
  748.     [GT_VISUALINFO,visual,TAG_END])
  749.   Gt_RefreshWindow(project0wnd,NIL)
  750. ENDPROC
  751.  
  752.  
  753. PROC closeproject0window()
  754.   IF project0wnd THEN CloseWindow(project0wnd)
  755.   IF project0glist THEN FreeGadgets(project0glist)
  756.   IF project0wnd THEN ClearMenuStrip(project0wnd)
  757.   IF menu THEN FreeMenus(menu) 
  758. ENDPROC
  759.  
  760.  
  761. PROC preludeinit()
  762. beginn:=TRUE
  763. mystart:=preludebase
  764. start:=mystart.mpr_prlctrl
  765. attn:=TRUE
  766. check()
  767. IF flag=0
  768. start:=PreludeInit([bn[1].mdevi,$08,bn[2].mdevi,$08,bn[3].mdevi,$9F,bn[4].mdevi,$9F,
  769.        bn[5].mdevi,$09,bn[6].mdevi,$09,bn[7].mdevi,$09,bn[8].mdevi,$09,bn[10].mdevi,$80,                        
  770.        bn[9].mdevi,$0,bn[11].mdevi,$0,bn[12].mdevi,$0,PRL_INPUT_RIGHT,$0,PRL_INPUT_LEFT,$0,
  771.        PRL_FREQUENCY,bn[1].setfreq,NIL])
  772. ENDIF
  773. beginn:=FALSE
  774. ENDPROC
  775.  
  776.